package com.boco.modules.fdoc.service;

import java.util.List;

import com.boco.common.persistence.Page;
import com.boco.modules.fdoc.model.FamdoctorEntity;
import com.boco.modules.fdoc.model.QueryResidentEntity;
import com.boco.modules.fdoc.model.ResidentEntity;
import com.boco.modules.fdoc.model.UserDocSignEntity;
import com.boco.modules.fdoc.vo.QueryResidentVo;
import com.boco.modules.fdoc.vo.ResidentVo;

public interface ResidentService {
	/**
	 * 新增居民信息
	 * @param entity
	 * @return
	 */
	public int addResident(ResidentEntity entity);
	/**
	 * 删除居民信息
	 * @param id
	 * @return
	 */
	public int delete(int id);
	/**
	 * 修改居民信息
	 * @param entity
	 * @return
	 */
	public int update(ResidentEntity entity);
	/**
	 * 根据ID获取居民信息
	 * @param id
	 * @return
	 */
	public ResidentEntity getResident(int id);
	/**
	 * 根据身份证号获取家庭成员列表
	 * @param idCard
	 * @return
	 */
	public List<ResidentVo> getResidenceMember(String idCard);
	/**
	 * 通过身份证号获取户主详细信息
	 * @param idCard
	 * @return
	 */
	public ResidentVo getResidentMaster(String idCard);
	/**
	 * 通过身份证查看当前家庭所有成员签约情况
	 * @param idCard
	 * @return
	 */
	public List<ResidentVo> getAllResidentSignSituation(String idCard);
	/**
	 * 获取家庭成员详情
	 * @param idCard
	 * @return
	 */
	public ResidentVo getResidentDetail(String idCard);
	/**
	 * getResidentInfoList: 根据分页信息获取居民签约信息
	 * @param entity  分页实体
	 * @return  返回当前分页信息
	 */
	public Page<QueryResidentEntity> getResidentInfoList(
			Page<QueryResidentEntity> page, QueryResidentEntity entity);
	
	/**
	 * getResidentNosigInfoList: 获取没有签约的用户信息
	 * @param entity  分页实体
	 * @return  返回当前分页信息
	 */
	public Page<QueryResidentEntity> getResidentNosigInfoList(
			Page<QueryResidentEntity> page, QueryResidentEntity entity);
	
	/**
	 * getResidentSigninfo: 根据传入的身份证号码，获取户主信息及其子成员的签约信息
	 * 工签约调用
	 * @param idCard  身份证号码
	 * @return
	 */
	public List<ResidentVo> getResidentSigninfo(String idCard);
	
	/**
	 * 
	 * remResisingInfo:设置居民签约信息模块为解约状态
	 * @param userDocSignEntity  签约信息模块
	 * @return
	 */
	public int  remResisingInfo(UserDocSignEntity userDocSignEntity,boolean  flag);
	
	
	/**
	 * 
	 * getAllFamdoctorInfo:用户获取所有的家庭医生信息
	 * @return
	 */
	public List<FamdoctorEntity>  getAllFamdoctorInfo();

}
